package main

import "fmt"

//alias int -> foo
type foo int

func showAlias() {
	var f1 foo
	f1 = 100
	fmt.Println(f1)
	fmt.Printf("%T \n", f1)
}

func showStaticType() {

	var f1 foo
	f1 = 100
	fmt.Println(f1)
	fmt.Printf("%T \n", f1)
	fmt.Println("----------------------")

	var f2 int
	f2 = 100
	fmt.Println(f2)
	fmt.Printf("%T \n", f2)
	fmt.Println("----------------------")

	//不能被编译通过
	//fmt.Println( f1 + f2)

	//可以执行
	fmt.Println(int(f1) + f2)

}

func main() {
	showAlias()
	fmt.Println("====================")
	showStaticType()
	fmt.Println("====================")

}
